import { UIConfig, UILayerType } from "./Defines";

/** 界面资源包名称 */
enum BundleName {
    Resources = "resources",
    Game = "game",
    Home = "home",
}


/** 界面资源路径 */
const basePath = {
    ui: "uiPrefab/ui/",
    dialog: "uiPrefab/dialog/",
    system: "uiPrefab/system/",
}


/** 界面唯一标识 */
export enum UIID {
    /** 空 */
    Null,


    // ------> ui <------
    //#region 容器节点, 同时展示多个节点, 比如:菜单栏（活动入口、公告）、用户信息（头像、金币、钻石）
    /** 首页菜单 */
    HomeMenu,

    /** 游戏菜单 */
    GameMenu,
    //#endregion


    // ------> popup <------
    //#region 弹窗层, 同时展示多个弹窗, 比如: 装备弹窗、角色信息弹窗、商店弹窗、结算弹窗、获得弹窗
    /** 资源加载界面 */
    Loading,

    /** 登录界面 */
    Login,

    /** 认证  */
    Identification,

    /** 用户协议 */
    UserAgreement,

    /** 隐私政策 */
    PrivacyPolicy,

    /** 设置 */
    Setting,

    /** 装备弹窗 */
    Equip,

    /** 信息弹窗 */
    RoleInfo,

    /** 物品栏 */
    Inventory,

    /** 商店 */
    Shop,
    //#endregion


    // ------> dialog <------
    //#region 同时只展示一个的界面, 比如: 登录弹窗、活动弹窗
    /** 公告 */
    Announcement,

    /** 活动入口 */
    ActivityEntry,
    //#endregion


    // ------> system <------
    //#region 同时只展示一个的界面
    /** 网络异常 */
    NetworkError,

    /** 账号安全 */
    AccountSecurity,
    //#endregion
}


/** 打开界面方式的配置数据 */
export const UIConfigData: { [key: number]: UIConfig } = {
    [UIID.HomeMenu]: { 
        layer: UILayerType.UI, 
        path: "uiPrefab/ui/homeMenu", 
        bundle: BundleName.Resources, 
        isDestroy: false 
    },
    [UIID.GameMenu]: { 
        layer: UILayerType.UI, 
        path: "uiPrefab/ui/gameMenu", 
        bundle: BundleName.Resources, 
        isDestroy: false 
    },


    [UIID.Announcement]: { 
        layer: UILayerType.Dialog, 
        path: basePath.dialog + "announcementPanel", 
        bundle: BundleName.Resources, 
        isDestroy: true 
    },
    [UIID.ActivityEntry]: { 
        layer: UILayerType.Dialog, 
        path: basePath.dialog + "activityEntryPanel", 
        bundle: BundleName.Resources, 
        isDestroy: true 
    },


    [UIID.Login]: { 
        layer: UILayerType.UI, 
        path: "uiPrefab/ui/loginPanel", 
        bundle: BundleName.Resources, 
        isDestroy: true 
    },
    [UIID.Inventory]: { 
        layer: UILayerType.UI, 
        path: "uiPrefab/ui/inventoryPanel", 
        bundle: BundleName.Resources, 
        isDestroy: true 
    },
    [UIID.Shop]: { 
        layer: UILayerType.UI, 
        path: "uiPrefab/ui/shopPanel", 
        bundle: BundleName.Resources, 
        isDestroy: true 
    },
}